package org.amse.korovkin.ciphering.model;

import java.io.IOException;
import java.util.zip.DataFormatException;
import org.amse.korovkin.ciphering.model.cipher.ICipher;
import org.amse.korovkin.ciphering.view.IView;

public interface IModel {
    public void encrypt(String inFile, String outFile, String keyFile)
            throws IOException ;
    public void decrypt(String inFile, String outFile, String keyFile)
            throws IOException ;
    public int attack(String inFile, String outFile)
            throws IOException, DataFormatException, InterruptedException ;
    public void createEtalonStatistic(String inFile)
            throws IOException, DataFormatException ;
    public void setStopFlag(boolean flag);
    public void setPauseFlag(boolean flag);
    public String getMomentFilePath();
    public void setTrueChoices(char[] letters)
            throws DataFormatException, InterruptedException ;
    public void addListener(IView view);
    public void removeListener(IView view);
    public int getProgress();
    public void refresh(int key);
    public ICipher getCipher();
    public void setCipher(String cipherName);
    public void generateRandomKey();
}
